Hello there fellow bay12ers.
I am Killjoy, I am pretty new on these forums, but nevertheless I want to share my latest personal programming sideproject with you all! This thread will be the development/update thread. I plan to add development posts where I show the process of developing specific game features.
I honestly have no great plan for how I want to go about doing this, nor do I have any plan about what I want the end product to look like. Perhaps I will figure something out along the way. For now I just want to have a game about trading in a extremely hostile and random world.
Please note that English is not my native language, so no need to berate me for making mistakes.
The premise
The game is pretty simple at its core.
You play a merchant, stuck in a procedurally generated fantasy world. Your goal is to trade, establish trade routes and create industry.
Simple huh?
Technology
The game will be written in Java, as the development will double as some Java development experience.
I am by no means a Java expert.. My foundation is c/c++, and at work I work with python.
Update log
Day_1: Below
Day_2: post (http://www.bay12forums.com/smf/index.php?topic=120863.msg3903135#msg3903135)
Day_3: post (http://www.bay12forums.com/smf/index.php?topic=120863.msg3905842#msg3905842)
Day_4: post (http://www.bay12forums.com/smf/index.php?topic=120863.msg3911721#msg3911721)
Day_5: post (http://www.bay12forums.com/smf/index.php?topic=120863.msg3913938#msg3913938)
Day_6: post (http://www.bay12forums.com/smf/index.php?topic=120863.msg3919053#msg3919053)
Day_7: post (http://www.bay12forums.com/smf/index.php?topic=120863.msg3927718#msg3927718)
Day_8: post (http://www.bay12forums.com/smf/index.php?topic=120863.msg3937025#msg3937025)
Day_9: post (http://www.bay12forums.com/smf/index.php?topic=120863.msg3954097#msg3954097)
Day_1
Let us start by making a window. It is not much, but it is a start.
(http://i.imgur.com/I4Oqw.png)
An empty window is pretty boring, and hardly anything gamelike. Perhaps I should start by making a terrain. I decided on a pretty retro style, by iterating through each point on the terrain drawing a pixel directly above the terrain point. This way I can just use the terrain offset to create a cheap and retro looking graphics style.
(http://i.imgur.com/p80fv.png)
Okay, if you think this looks like a square, then you are right. I have not added any height variation yet, but lets try tot add some random perlin noise to the 'terrain'.
(http://i.imgur.com/umXpe.png)
Personally I think this looks extremely boring, this is technically three dimensional, so lets add some rotation.
(http://i.imgur.com/c8RpD.png)
Great, now I can spin the whole thing around. This will help exploring the terrain later. I think it's time to stresstest the whole thing, so I increased the mapsize to 1024x1024
(http://i.imgur.com/XLPYM.png)
Okay, the terrain lacks detail. You cannot even see it is three dimensional, as it just looks like a green blob. The terrain should change color depending on what height it has for now, I should just try with some simple color scheme.
(http://i.imgur.com/eeDCo.png)
It still looks a bit bland. So perhaps adding water will give that much needed definition to the terrain.
(http://i.imgur.com/O9is2.png)
Water did make it much more interesting to look at, I found a pretty cool cove. But the terrain itself still lacks detail. I thought long and hard about this, and decided I should try using something called normal mapping. The details are not really important, but basically, things facing the "sun" should be more illuminated than things not facing the sun. Perhaps that will give me the much needed detail.
(http://i.imgur.com/UGjdS.png)
Okay, that did the trick! The terrain looks pretty cool now. I doubt I will want to work on it more. Now that I have a simple game world, I should throw some random cities(okay, just points, with names) around the map and see how it looks.
(http://i.imgur.com/vu5uH.png)
This looks pretty neat. The city Nyvy has taken the cool bay/cove like feature I found earlier, and it looks like the city of Rumsa is guarding the bay and city of Xulrullug. All the city names are basically generated from a short list of consonants and vowels, in the future I might want to add some more sophisticated name generation.
Anyway, that is all I managed to make today. Anyway, feel free to leave a post, I would like some suggestions to how the gameplay itself will play out.
My next task will be to actually add some city rendering, and perhaps add calculate some trade routes between cities!
Day_2
Making the world come alive
Yesterday I sadly did not get to work much on the project. It is that time of the year where there are a lot of "Yule" feasts, yes I am scandinavian.
I spent quite a lot of time thinking how exactly I wanted to go about making the world. I did not want the biomes and resources not to be hardcoded, but rather easily modifiable. So, I decided that all biome data should be in XML form, and the game would then place them in game based on this data. An example biome XML file below:<biome>
<name> Plains </name>
<inherits> BASE </inherits>
<minTemp> 0.0 </minTemp>
<maxTemp> 20.0 </maxTemp>
<minHumi> 0.1 </minHumi>
<maxHumi> 0.5 </maxHumi>
<minElev> 0 </minElev>
<maxElev> 10 </maxElev>
<color> 0,200,0 </color>
<weight> 10 </weight>
<isWater> FALSE </isWater>
</biome>
<biome>
<name> Desert </name>
<inherits> BASE </inherits>
<minTemp> 20.0 </minTemp>
<maxTemp> 50.0 </maxTemp>
<minHumi> 0.0 </minHumi>
<maxHumi> 0.1 </maxHumi>
<minElev> 0 </minElev>
<maxElev> 20 </maxElev>
<color> 240,233,96 </color>
<weight> 10 </weight>
<isWater> FALSE </isWater>
</biome>
I want resources to be able to require specific biomes. For an example a hypothetical "sand" resource could require almost any biome. The means that both Plains and Desert should be able to contain a "sand" resource. I should this by making an <inheirits> tag. By doing this the "sand" resource could require the "base" biome. Biomes should also be able to do more advanced things like modify the output of a resource. So our "sand" resource could have another property called "outputModifier", which would modify output based on some factor, if the biome it resides on is a specific biome and not just one that acts like BASE.
Either way, after making these sample biome files, and learning how to load them. I knew I should start working on making more advanced world generation. First step? Making a temperature gradient. So I took my terrain back to basics:
(http://i.imgur.com/DvO7b.png)
In real life temperature varies based on latitude. The reason for this can be explained by trigonometry, in my simplified world it can approximate it using the sine function, so we get a nice latitude based gradient:
(Red, means warm, black means cold)
(http://i.imgur.com/4KqqD.png)
This approximation is not really accurate, it assumes that the planets rotation axis is orthogonal to the orbital plane. In real life the earth is tilted. This means that the regions that gets the most sun exposure is only equator, but also the areas around equator:
(http://i.imgur.com/8FlfU.png)
I like this temperature distribution more.
Temperature is also based on elevation, sun exposure, and humidity. Let's start with elevation and sun exposure. These are easy enough to calculate, and gives us this temperature distribution:
(Blue very cold! Green temperate. Red tropical)
(http://i.imgur.com/RODHU.png)
I like the temperature gradient a lot. I doubt I will work much more on it for now, I will perhaps factor in humidity when I implement it.
Time to try out the biomes now! (I will ignore humidity for now and figure out a way to calculate it later, I imagine I will have to do some simple cloud/weather simulation, so it can wait for the next update)
(http://i.imgur.com/cnR6t.png)
Success! The biomes work! I want to add some more advanced biome functionality, but it should be fine for now.
Next step, work on humidity, more biome options and resources.
If you have any suggestions or questions, please feel free to post them! :)
Day_3
Making it rain
In my biome definitions I added humidity as one of the factors. I wanted humidity to only depend on rainfall in my simplistic world, but how does one calculate rainfall?
I originally did not plan on spending a lot of time on calculating rainfall. But I ended up making it way more advanced than originally anticipated.
First of all, clouds are evaporated water. So, let us start by isolating all the water in the world:
(http://i.imgur.com/na7Vj.png)
The water periodically spawn clouds. Clouds should disperse themselves, this will help them "get around corners", which will be useful later. For now the simulation just generates "blobs" around the water sources, which is perfect for what I want.
(For the more technical minded, the spread is basically Gaussian distribution, it is almost same algorithm you use to blur images)
(http://i.imgur.com/YQFuE.png)
Clouds are not static objects, they follow wind currents around globe. I don't want to simulate wind currents as it would make it a bit complicated. Instead I just cheat and all two main wind currents. A global west to east wind, and random coherent "any direction" wind. This way clouds will start forming pretty cool looking paterns:
(On this screenshot it is just the "west east" wind)
(http://i.imgur.com/XIHWb.png)
The east to west wind should only effect the cloud perodically as well, it creates much needed variation in the cloud density:
(http://i.imgur.com/6LzrU.png)
As it is right now, clouds only spawn from water sources. But, as the world does not wrap around right now, it will create quite a lot of deserts in the western parts of the world. So, instead I implemented random clouds to randomly "drift" in from the western border using perlin noise:
(http://i.imgur.com/AAs8B.png)
(You can't really see it much, but it adds to a better looking map)
Next step is to add random wind currents. This is done by generating 3d perlin noise, and moving through the "third" dimension to simulate change. Using this noise value, a random direction vector is calculated and the cloud is moved in this direction. Since the noise is "coherent" the movement direction is also coherent. Here only clouds above 0.5 in weight are drawn. These clouds will be making the terrain "wet".
(http://i.imgur.com/IQDIg.png)
Time to test out some rainfall, and see which parts of the world get wet, and what parts are left dry.
(Blue = high humidity, Black = Ocean (Ignored for now), Dark green = low humidity, Light green = mountain/low humidity)
(http://i.imgur.com/Vljgg.png)
Now, lets put everything together:
(http://i.imgur.com/0wFyD.png)
Perfect, this is what I wanted when I first started the project!
Alright, time to load in some test resources and distribute it on the map.
Resources like biomes, are also loaded from a XML file. This makes it very easy to add more resources when I feel the need for it. They follow this scheme:
<resource>
<name> Fish </name>
<requiresBiome> Ocean </requiresBiome>
<havestable> TRUE </havestable>
<mineffectRadius> 100 </mineffectRadius>
<maxeffectRadius> 250 </maxeffectRadius>
<minoutput> 0.1 </minoutput> <!-- 0.1 t / month -->
<maxoutput> 5.0 </maxoutput> <!-- 5.0 t / month -->
<type> FOOD </type> <!-- Other posibilities are LUXORY, WEAPON, MATERIAL -->
<scarcity> 2000 </scarcity> <!-- 1 in 2000 tiles -->
<duration> 7 </duration> <!-- Lasts 7 months before it rots, used later, for gameplay -->
<!-- Ignored for now.. -->
<duration_modifier factor="2.0" modType="resource"> Salt </duration_modifier> <!-- Doubles duration -->
<output_modifer factor="2.0" modType="biome"> Tropical Ocean </output_modifer> <!-- Doubles output if on tropical ocean -->
</resource>
After loading the resources, and planting them on the map. The result looks like this:
(http://i.imgur.com/6qTSl.png)
(Sorry, it is a bit cluttered, but it is to demonstrate the distribution of resources!)
For now modifiers are not in effect, but it would be easy to hook up. It is on the TODO list in my eclipse project!
That is it for Day_3, next up I will add some more resources, and work a bit on the cities, hopefully I can implement path finding to create trade routes between cities!
Feel free to leave a comment, feedback is always appreciated. :)
Day_4
The first small trading update
Hey all, I've been a little busy, so I did not work much on the project. I did however add a few new things, and did some under the hood work.
First of all, the rendering code was a bit slow, so I optimized it and made it run in parallel, you can't really see it in the screenshots, but it will make a difference later.
I started working on trading, for this I needed the resources to be assigned to cities in the effect radius of the specific resource. So, I started by putting cities back into the game and expanding a little on the code:
(http://i.imgur.com/SQsBr.png)
I made the cities grab the resources in their vicinity:
(http://i.imgur.com/d5HTK.png)
Now lets add support for some simple exporting/importing. For now I just want to test out this initial system, so the cities just export whatever resources they have extras of, to whatever city is first on their list:
(http://i.imgur.com/IcAac.png)
(http://i.imgur.com/l2uqZ.png)
It works! :)
Alright that is what I have to show for today, as I said it was a small update.
I have implemented A star path finding, and I will show it off in the next update when I expand a bit on the trading.
Btw guys, I have a little hard time coming up with interesting trade resources, do you have any ideas?
Depends on the intended setting.
The setting is supposed to be a static medieval world. Think your average fantasy setting.
Okay then. Here's some ideas.
Wheat--Basic food
Potatoes--Basic food
Apples--Basic food
Rice--Basic food
Grapes--Luxury food
Cacao Beans--Luxury food
Fish--Basic food
Shellfish--Basic food
Whale--Luxury food
Chickens--Basic food
Pigs--Basic food
Cattle--Luxury food
Basic foods would have an inelastic, fairly high demand, while luxury foods would have a more elastic but higher demand (making them more expensive). Demand would, of course, drop when a region has enough food to feed its population, although a large food surplus may lead to increasing population.
Iron (uncommon)
Copper (common)
Silver (uncommon)
Gold (rare)
Tin (rare)
Coal (uncommon)
Crystals (uncommon)
Gemstones
Marble (uncommon)
Granite (common)
Mithril/Adamantine/Etc (very rare)
Metals, minerals, etc, would have demand varying by rarity as well as the industrialization of the region. More heavily populated and industrialized areas would need more iron and marble (flux) to turn into steel, more granite to build forges and other fireproof buildings, etc.
Ivory (rare)
Pelts (common)
Silk (uncommon)
Exotic Animals (rare)
Feathers (common)
Blossoms (common)
Spices (uncommon)
Luxuries have a very elastic demand which, like for Luxury Foods would start high to make sure their prices are fairly high. Obviously, base demand would vary with rarity. Rich areas also have higher demand for luxuries.
Gold, Silver, Crystals, and/or Gemstones would also work like luxuries. Unless perhaps they have plenty of practical use, like as components for magical spells.
Horses (common; higher demand in rural areas)
Herbs (uncommon; higher demand in magical areas)
Hides (common)
Timber (common; pretty high demand universally)
Water (very common; only worth tracking exports to desert regions, if that)
Salt (common)
Sand (common)
Clay (common)
This is a bit trickier, and I understand if you don't include something like this.
Basically, if a city has the resources on the right side of the arrow, it can have the resources on the right.
Timber or Coal-->Fuel
Fuel+Copper+Tin-->Bronze
Fuel+Iron+Marble-->Steel
Timber-->Paper
Sand+Fuel-->Glass
Clay+Fuel-->Ceramics
Crafts would be another resource which could be made from almost everything, but I have no idea how to make them in a way that makes sense and won't be too much of a pain, so I'd reccomend assuming that local craft trades balance out.
Hopefully I'm not overestimating your plans here.
Speaking of resources, are resources placed then towns, or are towns placed and then resources assigned to them?
Resources are placed randomly when placing biomes. It is based on the scarcity parameter.
Towns are then placed afterwards, again randomly for now.
The idea is then that towns "gather" whatever resources they are in range of. The towns then get an even share of all the resources. If only one town is in range of a resource, the town gets all the output.
My plan for today is to implement and expand a bit on this system, perhaps even make resources actual entities.
Neat.
Day_5
Creating something that works
Hello all! I spend this day coming up with a good way resources should work.
I decided that cities will "produce" the resources they have in their vicinity. The system is actually quite simple, a city will get a part(Or all) of the resources in their vicinity. The city then counts up all the resources of a specific type and adds the outputs together, this value will be the amount of this resource a city will produce each month. When the city has a whole resource, it will create a resource entity, this entity will be what we will be trading between cities.
Here is a image of the system in the early stages:
(http://i.imgur.com/PnUyL.png)
When I made that image I only had a few resource types. I needed a few more, so I added quite a few of the ones GreatWyrmGold suggested. I did not add any animals, as I think I need to expand a bit on how those work before I add them in. Eitherway way, this is the mess it makes on the map when I render all the resorces:
(http://i.imgur.com/HyQ86.png)
The last thing I added today was some initial roads. It was mostly to test out my pathfinding algorithm. It is not quite ready, but it looks pretty cool!
(http://i.imgur.com/8v5tR.png)
That is it for day 5! Again a relatively short day, but I don't get to pull any all nighters at the moment, and my productivity is higest when it's dark.
Day_6
Adding some culture
Hey for this update I have been working mostly on underlying code. I imagined the world to be filled with different races/civilizations/cultures. So I worked on creating a system for this. My idea was that each race can be a specific number of difference cultures. I explained this a few posts ago. The cultures will control mostly the macro behavior of a civilization, like initial city placement, expansion behavior, and perhaps the likes and dislikes when it comes to trade goods. It will also add some decisions to the player. Would you like to play a dwarf, with easy access to very valuable goods and a long life, but have a harder time traveling? Or play a human with more flexibility and offspring, but more expendable offspring?
The first thing I needed to implement was this macro behavior. First of all, lets just add a simple system, the culture will just control city placement for now. Here is an example culture XML file:
<culture>
<name> Agricultural </name>
<requiresBiome> Plains </requiresBiome>
<requiresBiome> Forest </requiresBiome>
<requiresBiome> Tropical Forest </requiresBiome>
<requiresBiome> Beach </requiresBiome>
<createsHarbors> TRUE </createsHarbors>
</culture>
<culture>
<name> Mountain Dweller </name>
<requiresBiome> Mountain </requiresBiome>
<createsHarbors> FALSE </createsHarbors>
</culture>
This is the cultures I use for human/medieval societies and dwarves respectively.
Civilizations are like containers for these cultures. Grouping abstract behavior together to form more advanced behavior, also civilizations will define more global behavior, like language and naming. A civilization definition file looks like this:
<civilization>
<name> Medieval </name>
<culture> Agricultural </culture>
<smallCityName> Hamlet </smallCityName>
<mediumCityName> Town </mediumCityName>
<largeCityName> City </largeCityName>
<maxCivCount> 2 </maxCivCount>
</civilization>
<civilization>
<name> Dwarves </name>
<culture> Mountain Dweller </culture>
<smallCityName> Mountain Home </smallCityName>
<mediumCityName> Mountain Halls </mediumCityName>
<largeCityName> Dwarven Fortress </largeCityName>
<maxCivCount> 3 </maxCivCount>
</civilization>
Here is the civilizations that makes use of the cultures I defined earlier. For now I have not gone into languages, they should be mostly aesthetic anyway so they can wait for now.
Lastly races control the stats of the individuals spawned, but also what kind of civilizations this race can spawn. Here is one for humans:
<race>
<name> Humans </name>
<spawnCivilization> Desert Traders </spawnCivilization>
<spawnCivilization> Medieval </spawnCivilization>
<spawnCivilization> Norse </spawnCivilization>
<spawnCivilization> Jungle People </spawnCivilization>
<minAge> 2592000 </minAge> <!-- 60 years -->
<maxAge> 4320000 </maxAge> <!-- 100 years -->
<matureAge> 648000 </matureAge> <!-- 15 years -->
<fertility> 0.15 </fertility> <!-- 0.15%/year About 1 in every 6 years~ -->
</race>
Humans can spawn three different civilizations, that will have different placement, expansion and trading behavior, when it is implemented.
Either way, after implementing the city placement system to make use of these parameters I tested the system out, and whether it will scatter some capitals around properly. The results are promising, and now that the "system" is figured out, adding some more advanced and interesting behavior will be easy:
(http://i.imgur.com/lYr67.png)
I disabled roads for now, they were randomly placed and "for show" anyway. They will be added in again when I start working on civilization behavior.
That's it for day 6, I know there were not a lot of screenshots, but this was mostly abstract work anyway.
Day_7
Languages and initial expansions
Hey all. There has been a tragedy in m girlfriends family, it has really messed with my coding schedule. Either way, I have found some time to work on the game a little bit. This is where I left of:
(http://i.imgur.com/ZWUIo.png)
I wanted city names to be more depended on culture, so I decided to implement languages. At least sort of, I am not quite sure if I am happy with the system as it is right now. The system is very simple. A language has a name, and a list of syllables it can use to create words. Initially I included phrases and words too, as it could add some very interesting distinction, but I decided against it:
(http://i.imgur.com/5yJH1.png)
Yes, the elven city of "Meh" and the human city of "Gnome" and "Run for corn ill".
So, instead of words, I split words up, and the result is a bit better. I don't know if I keep this. Right now it just makes me laugh a little every time I see some exceptionally funny combination of syllables. Not the desired effect I wanted. Either way, I wasted a train ride implementing it, and now I have to learn to live with it.
Moving on. I want cities near water to act like harbors for cultures that allow for harbors that is.
(http://i.imgur.com/eZWSK.png)
Harbor cities will play an important role later when I add ships. For now the game just "knows" what cities are harbor cities, and it places a blue point so it knows where the water is.
The last thing I wanted to implement was some of the most basic AI. Each civilization will get some free expansion when they are created. The amount of free expansions is specified in the civilization definition. Either way, I wanted to test out and see how the initial world state is when the initial free expansions have been used:
(http://i.imgur.com/059pM.png)
I need to work some more on this. One of the cities expanded into the water, which was not exactly what I attempted.
Second attempt went a bit better. Here with some gray dots added around the cities to simulate buildings:
(http://i.imgur.com/aNTBJ.png)
Okay, it looks a bit better, and the naming is not THAT ridiculous anymore. Next I will work more on city AI, and perhaps I should start working on actual gameplay soon.
Day_8
So many different things I could implement!
Hey fellow b12fers.
I finally got some time to work on this project. I had a million different things I wanted to implement, which kinda meant that I didn't do any of them fully. I do however have a few things I want to show off.
First of all, if this is going to be a game, it needs a main menu. So, I decided to implement menu of some sort. This did require quite a lot of additions to the codebase, but I had fun doing it:
(http://i.imgur.com/auKs8.png)
I decided to interface a lot of things, also the world creation, so here is how the world creation screen will look like:
(http://i.imgur.com/lIGSI.png)
Other than interfaces, I decided to start working on adding some sort of interaction with the game world. Entities need to live in the world. How exactly they are going to do this I am not quite sure. At the very least they need to, Sleep, Breed, Eat, Work, interact with each other and a bunch of other things. I decided to start by implementing some sort of system where entities will attempt to breed every now and then, and every so often, a pregnancy might occur. This was way more fun than it should have been. Mostly because I actually named one of entity methods:
haveSex(Entity who);
I doubt I will ever get the chance to write such a function ever again.
Either way, after a bit of work on seeding the initial world population, here are the results of the world's most boring "breeding simulator":
(http://i.imgur.com/cmC4Y.png)
After about 9 months of in game time, and a lot of abstract ingame sex later. This a little dwarven boy was born.
(http://i.imgur.com/3tym0.png)
I have no idea if the fertility chance is to high. It will be fun to see later on when I implement other AI needs.
That is it for Day 8, not much interesting today. I will start working on giving entities more options for things to do. This means that the cities will have a bunch of "subspaces". These will represent houses, shops, industry and the so on. Entities will be able to move between these subspaces, and interact with each other and with the world. This will also lay for foundation for things the player will be able to do.
Suggestion about the names, maybe make it syllables instead of letters and limit it to about three, four or five syllables per name?
Fine, I'm updateing the langauges, so they get a few interesting more features.
EDIT:
Okay, here is the plan. Each language gets a few more parameters. Besides a list of syllables for general words, names get a list of their on syllables.
Female names, and male names, can now have a list of pre/post fixes.
For an example. One language most male endings will have harsh endings, such as 'te', 'ku', 'ge', 'go', while female names will have more 'soft' endings, such as, 'na', 'ne', 'me', 'ma', 'la'.
This should make the names a bit more interesting.
EDIT 2:
Alright, it is in.
(http://i.imgur.com/1NpO1.png)
Yeah, these names are way better, I like the guy/girl named mayor. I still need more variety in naming. But I am honestly not good at that.
Anyone interested in helping me add data to the random name generator? The job consists of adding syllables to a XML file.
Day_9
Creating a character, and rewriting a lot of code
Hey all.
I've been quiet about this project for a while, mostly because it took a long time to actually decide how to proceed with it. If you remember the first posts, I talked about how I rendered the world only using software. This mean that the graphics card idles, while the CPU is working it's ass off. For low resolution games, this is fine. But for this project it became more and more apparant, that most people probably would not be able to run it because of software rendering. My own beefy i7 laptop had trouble rendering the world at satisfying speeds.
So, I decided to give the LWJGL library a shot. LWJGL stands for lightweight java openGL library, and is essentially a wrapper around openGL for java. OpenGL being a high performance graphics library which uses the graphics card to render stuff, meaning it is way faster for most people. There was one problem. None of my rendering code was set up for openGL. this meant that a lot of code has to be rewritten, and a lot of new code had to be written.
The end results are very nice, so the effort was defiantly worth it.
After boxing the new rendering code into place, I decided to actually add a interface to create the world, and create a character for the world. OpenGL allowed me to scale the resolution up to something proper, instead of what I was using up to now, which was about half of what the screen was.
(http://i.imgur.com/c2HW3.png)
The biggest change in the main menu is that info box. I don't know if I will keep it or not. It is quite useful for new version info in the future.
I decided to make full use of openGL and actually render the world in the preview window of the world creation menu.
(http://i.imgur.com/bUwi5.png)
(Please don't mind the darkness, I will explain it later, it will get fixed)
I make full advantage of this in the character creation page, here the map automatically jumps to the starting city location when you toggle between them. This should give a really nice way of exploring the world, and starting locations.
(http://i.imgur.com/TWDrE.png)
Now for some of the visual goodies openGL opened up for.
(http://i.imgur.com/BhZL7.png)
Here is the reason for why the world was so dark in the preview. The world starting date is year 0, month 0, day 0, at 00:00 am, which means it is night. OpenGL allowed me to implement a neat day/night effect. There is also a bunch of other effects thrown in for good measure. Fake ambient occlusion (The darker ocean areas). Fake waves, and wave specular reflections, and so on.
Here is the world in the evening again:
(http://i.imgur.com/89Eik.png)
Here is one at midnight.
(http://i.imgur.com/C0jFp.png)
I also implemented a bunch of other things. Such as entities now actively attempt to get married, there is space for improvement, but it works for now.
Last screenshot is how the game looks when rendering it at a higher resolution, I don't know what resolution I will go for. Time will tell..
(The world looks derpy because I was playing with the world generated when I made that screenshot)
(http://i.imgur.com/a7YrM.jpg)
That is it for today.
I'll work on making the character take its first steps next time, and I will probably add actual buildings to the cities too, the player and world entities can visit.
Can't wait.
Might take some time, as I have been a little busy. And yesterday, when I technically could have worked on it I was struck with a weird fascination for studying the newest Java security exploit and building a program that can parse java class files.
Either way, here is the current state of the game. If anyone interested in an update.
(http://i.imgur.com/THMusOj.jpg)
I added view fog, console, and a few more buttons.