| | Simple language generator (v1.01) | |
|
|
| Author | Message |
|---|
Commander Keen Industrial Team Lead

Posts: 1132 Reputation: 34 Join date: 2010-07-23 Location: Czech Republic (not that anyone would know where it is...)
 | Subject: Simple language generator (v1.01) Tue Dec 27, 2011 3:58 am | |
| Recently I needed a word generator for another project of mine, so I made one. I figured you might be interested by it, so here it is. It's really a simple thing, don't expect anything big. All it does is randomly setting some variables (such as how much is each letter used or maximum consecutive vowels) and then generates exactly 1000 words.
Here it is: http://dl.dropbox.com/u/54710394/LangGen.rar (v1.01)
All you need to do is to just run the exe file and it will generate "langfile.txt". If you want another set of words (and parameters), just run the exe file again and a new langfile.txt will be generated.
If anyone wants to port it to Linux (Roadkill), the source is included. I have used the cross-compatible SFML 1.6 for the random functions, so you just need to download it or replace the random functions with commands of your choice.
Last edited by Commander Keen on Tue Dec 27, 2011 9:47 am; edited 1 time in total |
|
 | |
~sciocont Overall Team Lead

Posts: 3173 Reputation: 99 Join date: 2010-07-06
 | Subject: Re: Simple language generator (v1.01) Tue Dec 27, 2011 9:24 am | |
| Excellent work. This is the first step towards different languages in the game. This is really cool, but I have a few questions. Why is "I" a consonant? (probably just a typo, since it's listed under consonant and vowel, but still) why do I have words longer than 4 letters if the max word length is 4? could we cut down on short (2 and 3 letter) words? In case anyone is wondering what this system looks like, but can't or isn't able to download or run it, here's a new file I just made. | Spoiler: | | | Vowels: A E I Y O U 4 3 4 3 2 1 Max consecutive vowels: 3
Consonants: B C D F G H I J K L M N P Q R S T V W X Z 2 0 1 1 3 3 3 0 2 1 0 0 1 0 2 3 1 2 1 2 2 Max consecutive consonants: 1
Digraphs: aip ui ka ani 1 3 3 2 Digraph chance: 19%
Min word length: 4 Max word length: 7
iaiy ague ikaoyaui ruityka tkaaysaipx isiaiwka vybyviaip eawuiry iagkai vkakibe auiiabax posyranii ydyi hiiuisye leiafaui aaokio voxkai ianizyoy ekaperab kyor yzaxyi asal yaipiuil seikasa xeaipiui gaipaanilaniw kotea fiys akaiuikka ziaiguiv beytui aratati axav lygikal yaipxui yiof araauie ipuivav peuie zekuisoi huiiiwi zareuiu aaniik ruzi iyyranig riaaipsyi feveoaipi xahayiui eaipisui hykap ihanit xyza laipzaee kaiixkau okair ianiox aeihal bogay axaii yaipiaw ranioiyxaip beeoanii gyaiphoaip vkaoa iaipaakii ixuidaip aaipyiid ikaevax yziohae oayzka obaiph yzuzkao iwika ibaniasye eeaniiuab yakyzuiy dkako hepa ykar duipysi aekuiu auive baganixa yveyiy ihyaa gibedi iaoaipe biwuie aoyba yfkaiby iuigahaka iievkahui zoeap oetasaaip baniseaip kaxaipii yyhaipk huivuibaw akabiv xyyipiani bakasanih guisaipxiw yixika heiaage ikaeui iyanii eagoah hiabui gaipbig ziiar duaalob easiy hekas pyuiod leeauie puiit lyykad iebaha ekahias okaib xoag iakawehi faipiaaniu ikaguibii hovyaipu piigoep hieu iuietuivka keiyui oygy iewuik yapehui aybataip iosuaek taanioguih hauixoo hisanixy haipyiif eanidaip fuiaani aanizi easkau yxev hayzii oaniiisaipa alep aubaiia aaipdaaek xohohie aliiawui yzaipoeki wiada vuikaipx vogy hanizani duifias ykaol suiryb vekaeyk apao aedep auiakarka fiiui sahyuis iieg yuohkah esuiika saniseaniy iuioga xegebyf eluika agiuis pehyhe kyhiode ekanitakaip iazaeef xkaap suekai hyhiga tayyh zukiuik aiituii ysakageu yaniawya rkagaa ysigkahy iaipybaipoaip gaipaianib gigaka oaipaha zyhaniha eevkasy seagiii yovuiawka hela booianiyu vuvkak elaiy gariaap xifa kosekaa byaovaipy yiyuirae eaipyiih xavekasy ekabai leibeaz ryeaz kiixei ehaipi ibiauii hiigeso eoanii yxex aaaaniabo yagaii rkaaw yboieoy kyhi upipal saase weaniakay guielkai xuiie hiaanie taipev ieikool ybykahani zavi hiuix viiuie iufi uhaipa okaaianiey ouizoa uhuiruih eeky oiytyi aagiraf suivanirani bkadani giuiize tkaioi vari yyor igyie aeyx beaaniiu iviuieo iauaipba zuikyuiio rita aaxagi hikaa byaaba eguis yaipiui oebad aoaani eguivkag iahagei ganihya iraniipe hyaipiw oduiat vewoaip iakahu ugkav watkag hekoh iaiphkai uaraipve akasui eruiiganik orkakani iuieosa gaipianiy oiaso agagao iiagiika yhoikaay keeby bkaha ifianisuiu huiiv yuifyxek taniiaipez iayikay ifyvota kexikoi raoeby baeas gkaiani ekeues aoxe giar yxuani yaniaiei gaipoaa eanifugka zyhapkas yiysyaniw paeiaga beaasuo aguibaui kasir rkaab hiali xaki wuygaipai iypaa kihuieha siuio iekkaii ieou osuiaaipka raiprka yikahe heryuiby ebii eaabaaipy otahyae tkauoi yaipav aiaaoby ikika kaniva eaofaipas segieba zoekaxe ewok bkaiyv huigawe oyzuis euiga vusuipanif biuiy luiiaa ereys xanieeykah agaaip oaipax iuieuiz gkaah iiax deuiesi ezoaiaipi suibyee iaipho xaniiri xipi oanieanii odokaahy rkaaz ryalio sanihaa baziuio aiaipyaa geakaaanix auiaakaz esykaai uyiuiyd guiogid ianikania iiziy aeiseh ooaraipb aloliw avuigi bixaip esaiibo guivianiet fkady luiae teypu ripaipp aoiku yiahaaip uaniob xkaaly dafibe goavui azkazaeani eraipyi ufanibak paniitupka xakafefa fyuabeka ikaeuioae reuzui aezuity uaviap ereaby gkaoaga aguiha vyuis xesuivui zayanievo ebyuieka sazaopy kiuifair sevylani kiiazeani ohoaanieaip xuisii guiiskazy dyiekait paaikkai tuivoxui iiiuyah iewu isyy ikeka ioas zeolo gybkaah elayybaip oaipaazii havud ybiekaiy zkaxira ykaexeui ihyui vyba veeiani xuivo olyy gouiao viexaipay yriaipi zyiakae aaeui paroi iuskaga ganixuih hiyaip eegaipz doauzy ikaeitui aaanivyhui yaxataipy ivuiyk eanizi ibkay sauifiy gkaaeb byag gykayi aeioka iiug uribianig iaipozui ahaipogo huieepuik kkaaa ykaeuig iaipiofa avaiphani edaika hkasaipigaip tiexka agayl xigyir kkaraipisui veihykag otai ianixi ianioiakau xuihanisy asewaipig oaniyi aisoka ioak haab haipzkakyh ruia auieha zauaip liee hebobe xaaniiiaip oganikea kaiptotanip xuisiive ogua iusyzit bipkay xuieyv oekaaias akasey ehywkazi iuihkaha oevuiiui ayiakaip eiuvuiii rkaetkaxka iaesiu beianiia xanizu panigkatoh akage aaxaipa iketa fiihka uwaaipaz ioai guiguuiu subaik yuifa aaoluiup iikau oikavanie eaipvaniaani panivy iaipiuisaips uieru dopaipav boiafi esugawi buiekade zibani yuekav hilka aeek tuaipzax vyuih yokaiyd aigeanire iizezyz zaaikafe xyvianiyy isilaka liba buibaip gauguix aaak eiav ouifaat sisaniae haai hyubu baseaipeh iskari iauiseap ixef aruii aisania gidka kuiyyri usakagyl euiaaipoy saoauiy ysoeaz ouihauka rikaboi yaxa hkauabi oyys ikayv zuiivuiz eguxaip auoiey usil eiyais teyb vaiprakkaf usuivaex eigui yoagifa ikkas axoikase eyaryed kalkap oevazoa kylikaiani iaanii ganibu tazi oianiawyg iaipby ydoskaie vaeixa exie byhaz riiuoh roiobi zihykasaip iuibyt aianioe iikas iaguiola yvkagyu wkageiuii beoixyy iovkai gkareiaip liaipe ekaeaipule bkaekaxy eoevef fogezaip heher gaaruii heanikyo xekahuiag zaipgah oeie evab oxafy saewaip ekagka yokiui kkaexaipaani haniouiwy sili iloaniw eeedui buikadui bakaro xaiphav biskayuie ukaakar awaipdyr eiki yuika ikafa buyuiti aasaa iaiphyser rahe raniisoanif skaaaa gkaryf eazaxix aaipdueze gyika ouisykanie ikaya gueyx iexy gaezy obiie ebkazei hyganiii aianiiei piuiouihi kyysaeaip bikavuii safoii axaniioanik aareil zipui akaiiaiplui exaipw asie iekaaiu yxeui keuih xyxazo iikagy hiis oaanie iaiee uvuiyaip raiaipex kkaaranil paaataa iuixiyda haipdus ygaho iorouia bisuiauib koiwaoz iuiarikau dkaauieso puakaii kuiiani ypaanio agakoxa ozaipzuil iuipykaao yaiyt pkaawia ikeo vikafuieh euigaaipg gianiakagu tiaipi duiikai iyosyi zabye ihaipfosaip tuiiuii kuisia zaauwkai viryuik gukafani adup guiir kahy kkadeooaip bory abayskag saipyaipig xkahahkao yygaka abareui xiuiaxiui ribiv daoil ooik ioxia bidysuio oxokaeka rykanii aiaipgee wuigiaip aawyuiov ianiaii bitagkag zareg laniiyxiy heiybaka iagoz ruiapkahaip esyhe yoavuiyy syos owaaipi peuaipywe tkaiyag buirka feybaipi apegka odekaii oakuu gaipika ehkavaniwi xayanis ebyio ziuia oahooz yifauiiani ikato hitiyw eeibkaio zaieskas zkaed ganiruil iaipbiieg uauir iuizyaof ikazeeti auiyuihe aiibige haniek akiaiid haipaaaf avyhyhy eiaipwia hehka takanix agkau yiazka reaatani ruiazoe aaianii ieibka yezka haewa irahoka yhaniiaipi haiptikax byvkaa ikaiag eidiaip zeaipgiani hiuieaog iaetuia viaanivyy axuifani hkauaaiani ihaipfap eusuy ioaui ryilka saakka yyaxuia iazui ykeyih vilaaow ygyuiika goai guuii sary azuia yyata bekau eouio yaik ioeh siahkaf opyg heanieeuii wyaaaipe iaziaex buiawe giuiky paniba iekuiz duira hkaskagka auixaie kyheokai igaipydod danihkagi biby baniianisaa zayesuy eraniye easehe uofuiwii fkaak xiyad uoyka aaiphuida hyahik iiaui iuskaa gyuirania rikaiania ypyidu safauby xigiba gykaaz dibeba vuuiisy rixairi iiaiaf kotanisi aanieh ruihaip gyyii xuiyri yaipgaipr lkagaipaii yauivas yaniiani syxaipio gauiek aroikagy ganireiay skasosao ysuit vuzouiv ohesy ahkaubaui oaniguiy ypyxaaip oyagix ekaouiiio seaoh byaedui ikaexani gauioaipg ianixaipyb saaui buiekaeeu kuipaniiiaip hipuii vaipre vaikad zyganig agyxoak ianioyx baaipyh roaipyani iaipsy vaipsekato guipaipoui aepi akyiex aoiuiaf yyoi havaniey dkaxaipg talaipui kkaokaia iaasyza giaipxa gexyi laipsaipeh guiori ehebuio rkaaivyb ibuiyi iuitikai xaaipvahi zuiiani akabuiix ioiaiplkay sykaekkay gkaikar ehiayui gaipebka ianieoi ianiia dalaz iaipzkaiia saipsiriani gaxi uhaipeh hoid okaahkak eiuid ayzanio xuouisyz byieaipia hkabkago esaaipkui hasy bexi iaagkaa fuipkaaaip efyv ikarani xoiaipkaipi aiazaipex kanipuihkae pahefy kaab yguipag iaipwi azuifyf iaig syezaz eiyp saipskazkat agei baabihka skaial rapaxi iiyz iuywob hiub axoea igawka zuibyiki weko soiiuir iuseog ebkavaip aguidisui saaipaal aguihkai liaipzuiyi iaipbaipva yzeoaly ozaniaaipa xigio akawanitaip owuir okaihanig kaiifui yvuifyya akahiz giyd egirani eekukit tuiauiie iyexaip yyuibkat axkaaeu sakaho kasyeii ianiikabka biusysi iareibi ooweika wkakeew asuiv iebahyka zakaaz hyaaxka biiviy kata ikarii hekaoiv fysey byyruiot gyfiygka hybaipfea ozeiae xaniooaui arib ivewy fyuihee ryxeybka bekaeani eolyi
|
_________________ Remember our goals: simplicity, science, and playability. Keep them in mind always. [OE]| [FAQ]|[Wiki]|[My Blog]  |
|
 | |
Commander Keen Industrial Team Lead

Posts: 1132 Reputation: 34 Join date: 2010-07-23 Location: Czech Republic (not that anyone would know where it is...)
 | Subject: Re: Simple language generator (v1.01) Tue Dec 27, 2011 9:52 am | |
| Updated. Fixed I being a consonant and tweaked the values to allow bigger differences between languages.
Digraphs currently count as a single letter and don't respect the 'max consecutive vowels/consonants' rule. That will get fixed later. |
|
 | |
~sciocont Overall Team Lead

Posts: 3173 Reputation: 99 Join date: 2010-07-06
 | Subject: Re: Simple language generator (v1.01) Tue Dec 27, 2011 10:24 am | |
| | Commander Keen wrote: | Updated. Fixed I being a consonant and tweaked the values to allow bigger differences between languages.
Digraphs currently count as a single letter and don't respect the 'max consecutive vowels/consonants' rule. That will get fixed later. |
Cool. Where can we use this in game?_________________ Remember our goals: simplicity, science, and playability. Keep them in mind always. [OE]| [FAQ]|[Wiki]|[My Blog]  |
|
 | |
Commander Keen Industrial Team Lead

Posts: 1132 Reputation: 34 Join date: 2010-07-23 Location: Czech Republic (not that anyone would know where it is...)
 | Subject: Re: Simple language generator (v1.01) Tue Dec 27, 2011 10:53 am | |
| I don't really know. I originally made this for my roguelike and had it generate names for all items and characters. We could call it to generate names for AI nations' towns and TOs, and maybe even the player's if he chooses so, bonus points for every nation using a different language. |
|
 | |
~sciocont Overall Team Lead

Posts: 3173 Reputation: 99 Join date: 2010-07-06
 | Subject: Re: Simple language generator (v1.01) Tue Dec 27, 2011 11:32 am | |
| | Commander Keen wrote: | | I don't really know. I originally made this for my roguelike and had it generate names for all items and characters. We could call it to generate names for AI nations' towns and TOs, and maybe even the player's if he chooses so, bonus points for every nation using a different language. |
Great._________________ Remember our goals: simplicity, science, and playability. Keep them in mind always. [OE]| [FAQ]|[Wiki]|[My Blog]  |
|
 | |
roadkillguy Experienced

Posts: 534 Reputation: 16 Join date: 2010-08-25 Age: 19 Location: Rhode Island
 | Subject: Re: Simple language generator (v1.01) Tue Dec 27, 2011 11:58 am | |
| What rendering library did you use for your roguelike? I wrote an engine not too long ago using SDL. It could load any given character set, much like dwarf fortress. |
|
 | |
Commander Keen Industrial Team Lead

Posts: 1132 Reputation: 34 Join date: 2010-07-23 Location: Czech Republic (not that anyone would know where it is...)
 | Subject: Re: Simple language generator (v1.01) Tue Dec 27, 2011 12:36 pm | |
| OpenGL through SFML. SFML is just like SDL with a few extra handy functions, so I just use it instead of SDL. The roguelike has graphical tiles (no ASCII), the tileset is selectable and can be of any size - I use 16x16, 24x24 and 32x32 for testing, but even weird sizes like 69x69 work well. So far, it's more like an infinite-world sandbox editor than an actual roguelike because I got stuck on NPC AI.
Last edited by Commander Keen on Tue Dec 27, 2011 1:31 pm; edited 2 times in total |
|
 | |
GamerXA Regular

Posts: 286 Reputation: 9 Join date: 2010-07-06 Age: 24 Location: Australia, Queensland
 | Subject: Re: Simple language generator (v1.01) Tue Dec 27, 2011 1:24 pm | |
| This prototype is a very good beginning; but there are several things missing that would constitute a randomly generated dictionary that could be used in a Thrive Procedural Language. For the generation of in-game languages, this website may be useful. |
|
 | |
roadkillguy Experienced

Posts: 534 Reputation: 16 Join date: 2010-08-25 Age: 19 Location: Rhode Island
 | Subject: Re: Simple language generator (v1.01) Tue Dec 27, 2011 1:54 pm | |
| I was trying to write one in ncurses and then I eventually just wrote my own engine for it. It was going to be the coolest post apocalyptic roguelike ever, but I could never really figure out how to organize levels and stairs and such in a non cluttered way. |
|
 | |
Commander Keen Industrial Team Lead

Posts: 1132 Reputation: 34 Join date: 2010-07-23 Location: Czech Republic (not that anyone would know where it is...)
 | Subject: Re: Simple language generator (v1.01) Tue Dec 27, 2011 4:57 pm | |
| @GamerXA - I want to keep this simple. Post exactly what features would you want to see and I will try to implement them, but nothing overly complex like automagically making it's own font or similar things. Of course in Thrive, we can use an improved version with those features, but I need to use this basic version for other projects. @roadkill - Good thing Legendaria has no stairs then  I have sacrificed them for an infinite* world using Minecraft style chunk approach, except 2d. Mind posting a link to your engine? I could really use some hint for the AI. *will be actually on a procedural landmass, limited by seas |
|
 | |
roadkillguy Experienced

Posts: 534 Reputation: 16 Join date: 2010-08-25 Age: 19 Location: Rhode Island
 | |
 | |
Commander Keen Industrial Team Lead

Posts: 1132 Reputation: 34 Join date: 2010-07-23 Location: Czech Republic (not that anyone would know where it is...)
 | Subject: Re: Simple language generator (v1.01) Wed Dec 28, 2011 4:51 am | |
| Ahh, in a flash of genius I fixed the AI bug. Weeks of increasingly massive changes to the code yielding nothing, and a single line change suddenly makes it work. Hard is the life of a C++ programmer...
Porting the current Thrive source to SFML is easy, just done it on my Windows build. BTW, how does your quadtree work? I made some simple quadtrees for collision detection in the past, but I can only make your crash.. |
|
 | |
roadkillguy Experienced

Posts: 534 Reputation: 16 Join date: 2010-08-25 Age: 19 Location: Rhode Island
 | Subject: Re: Simple language generator (v1.01) Wed Dec 28, 2011 11:41 am | |
| | Commander Keen wrote: | Ahh, in a flash of genius I fixed the AI bug. Weeks of increasingly massive changes to the code yielding nothing, and a single line change suddenly makes it work. Hard is the life of a C++ programmer...
Porting the current Thrive source to SFML is easy, just done it on my Windows build. BTW, how does your quadtree work? I made some simple quadtrees for collision detection in the past, but I can only make your crash.. |
Yo, commit that Belgium. I'll get the makefile working.
As for the quadtree. I thought it worked. If it's any consolation, of a given map must be of 2^n + 1. (Technically it only needs to be divisible by two for each sublevel) The point is to subdivide terrain data all the way to the bottom, and have each node make a vertex buffer or something. That way we just have to tell it to render and it's cause for less overhead.
EDIT: I just wrote a basic library that contains the rendering loop and phase engine. It utilizes sfml, so I'll commit soon. |
|
 | |
Commander Keen Industrial Team Lead

Posts: 1132 Reputation: 34 Join date: 2010-07-23 Location: Czech Republic (not that anyone would know where it is...)
 | Subject: Re: Simple language generator (v1.01) Fri Dec 30, 2011 4:00 am | |
| MERCURIAL, Y U NO MAKE SENSE!?
If it's still any use, here's a download link to the SFML ported Thrive: http://dl.dropbox.com/u/54710394/thrive_sfml.rar
Do I need to have my account set as a Thrive's developer to be able to commit? Not that it would matter much as I still haven't figured out TortoiseHg.. |
|
 | |
| | Simple language generator (v1.01) | |
|