[4E6] NanoWar

Started by
6 comments, last by ToohrVyk 16 years, 7 months ago
April 1st 2008—a japanese tourist in a French restaurant discovers that his slice of Camembert holds the potential for limitless energy in the form of tiny specks of crystal (quickly baptised 'Camembertium') with the interesting property that its loci grow antimatter particles and keep them alive without exterior intervention. The french government seizes the opportunity and the slice of cheese and opens up a new market for nano-extraction of anti-matter from the Camembertium. The player controls a nanomachine-based energy collection system that grows on the Camembertium crystal, in a nice and clean RTS fashion. The emphasis is on detonating micro-bombs on the loci to release the antimatter, and then use the gathering unit to attract the anti-matter, collide it with matter, and send the energy to the macroscopic world to be turned into euros. Though nanomachines cost nothing to create (except time), the french government extracts a continuous tax on every functional nanomachine (depending on its complexity and size), so one should keep one's army small, lest they go bankrupt. The player wins when all other companies present on the crystal either go bankrupt or lose all their nanomachines. Among the features planned: the terrain (which is a crystalline surface) is deformable (in particular by the explosives used to release anti-matter from loci) and grows back over time to restore a flat surface. Income flow and tax flow are handled by an accounting team independent of the gathering team. The accountants drain a constant flow of income to work, but depending on their level (marked as one star to three stars) they allow fiscal tricks such as reducing or delaying taxes, or earning money for energy which is not delivered yet with minimal interest, or simply eliminating losses due to wasted energy. They are, therefore, an important part of your RTS economy. Oh, and did I mention huge nano-armies and Weapons of Microscopic Destruction? The game will most probably be playable in multiplayer on LANs (I won't be bothered to make it work over high-latency networks, such as the internet).
Advertisement
Hmm, so the elements you'll use are accountants (the player?), crystals and explosions.
If I understood it right, you win by attacking the other players, thus cutting their source of income and waiting till they go bankrupt?
Quote:Original post by Gaenor
If I understood it right, you win by attacking the other players, thus cutting their source of income and waiting till they go bankrupt?


You can also destroy all their gathering and building units.
First 'screenshot' :
Quote:./run.out -test
Testing 'Serialize'...
Testing 'Serialize (int)'...
Testing 'Serialize (int list)'...
Testing 'Serialize (float)'...
Testing 'Vector'...
Testing 'Transform'...
Testing 'Entity'...
Quote:Original post by ToohrVyk
First 'screenshot' :
Quote:./run.out -test
Testing 'Serialize'...
Testing 'Serialize (int)'...
Testing 'Serialize (int list)'...
Testing 'Serialize (float)'...
Testing 'Vector'...
Testing 'Transform'...
Testing 'Entity'...


Haha, looking good!
New and improved, now with basic networking features!

arkadir@nyarlathotep /home/arkadir/projects/ocamlgame> make clean test docrm -f run.out *.cm[ix] *.o *.s *~rm -rf doc/ocamlopt -thread unix.cmxa threads.cmxa -unsafe -c util.mlocamlopt -thread unix.cmxa threads.cmxa -unsafe -c varArray.mliocamlopt -thread unix.cmxa threads.cmxa -unsafe -c varArray.mlocamlopt -thread unix.cmxa threads.cmxa -unsafe -c serialize.mliocamlopt -thread unix.cmxa threads.cmxa -unsafe -c serialize.mlocamlopt -thread unix.cmxa threads.cmxa -unsafe -c serializable.mliocamlopt -thread unix.cmxa threads.cmxa -unsafe -c serializable.mlocamlopt -thread unix.cmxa threads.cmxa -unsafe -c vector.mliocamlopt -thread unix.cmxa threads.cmxa -unsafe -c vector.mlocamlopt -thread unix.cmxa threads.cmxa -unsafe -c transform.mliocamlopt -thread unix.cmxa threads.cmxa -unsafe -c transform.mlocamlopt -thread unix.cmxa threads.cmxa -unsafe -c entity.mliocamlopt -thread unix.cmxa threads.cmxa -unsafe -c entity.mlocamlopt -thread unix.cmxa threads.cmxa -unsafe -c rollback.mliocamlopt -thread unix.cmxa threads.cmxa -unsafe -c rollback.mlocamlopt -thread unix.cmxa threads.cmxa -unsafe -c passQueue.mliocamlopt -thread unix.cmxa threads.cmxa -unsafe -c passQueue.mlocamlopt -thread unix.cmxa threads.cmxa -unsafe -c socketAccept.mliocamlopt -thread unix.cmxa threads.cmxa -unsafe -c socketAccept.mlocamlopt -thread unix.cmxa threads.cmxa -unsafe -c transmit.mliocamlopt -thread unix.cmxa threads.cmxa -unsafe -c transmit.mlocamlopt -thread unix.cmxa threads.cmxa -unsafe -c test.mliocamlopt -thread unix.cmxa threads.cmxa -unsafe -c test.mlocamlopt -thread unix.cmxa threads.cmxa -unsafe -c testVarArray.mliocamlopt -thread unix.cmxa threads.cmxa -unsafe -c testVarArray.mlocamlopt -thread unix.cmxa threads.cmxa -unsafe -c testSerialize.mliocamlopt -thread unix.cmxa threads.cmxa -unsafe -c testSerialize.mlocamlopt -thread unix.cmxa threads.cmxa -unsafe -c testSerializable.mliocamlopt -thread unix.cmxa threads.cmxa -unsafe -c testSerializable.mlocamlopt -thread unix.cmxa threads.cmxa -unsafe -c testVector.mliocamlopt -thread unix.cmxa threads.cmxa -unsafe -c testVector.mlocamlopt -thread unix.cmxa threads.cmxa -unsafe -c testTransform.mliocamlopt -thread unix.cmxa threads.cmxa -unsafe -c testTransform.mlocamlopt -thread unix.cmxa threads.cmxa -unsafe -c testEntity.mliocamlopt -thread unix.cmxa threads.cmxa -unsafe -c testEntity.mlocamlopt -thread unix.cmxa threads.cmxa -unsafe -c testRollback.mliocamlopt -thread unix.cmxa threads.cmxa -unsafe -c testRollback.mlocamlopt -thread unix.cmxa threads.cmxa -unsafe -c testPassQueue.mliocamlopt -thread unix.cmxa threads.cmxa -unsafe -c testPassQueue.mlocamlopt -thread unix.cmxa threads.cmxa -unsafe -c testSocketAccept.mliocamlopt -thread unix.cmxa threads.cmxa -unsafe -c testSocketAccept.mlocamlopt -thread unix.cmxa threads.cmxa -unsafe -c testTransmit.mlocamlopt -thread -o run.out unix.cmxa threads.cmxa -unsafe util.cmx varArray.cmx serialize.cmx serializable.cmx vector.cmx transform.cmx entity.cmx rollback.cmx passQueue.cmx socketAccept.cmx transmit.cmx  test.cmx testVarArray.cmx testSerialize.cmx testSerializable.cmx testVector.cmx testTransform.cmx testEntity.cmx testRollback.cmx testPassQueue.cmx testSocketAccept.cmx testTransmit.cmx./run.out -testTesting 'VarArray'...Testing 'Serialize'...Testing 'Serialize (int)'...Testing 'Serialize (int list)'...Testing 'Serialize (float)'...Testing 'Serialize (type_id)'...Testing 'Serializable (slz_mock)'...Testing 'Vector'...Testing 'Transform'...Testing 'Serializable (ety_mock)'...Testing 'Entity (ety_mock)'...Testing 'Serialize (dref)'...Testing 'Rollback (dref)'...Testing 'PassQueue'...Testing 'SocketAccept'...Testing 'Transmit'...mkdir dococamldoc *.mli -d doc -htmlocamldoc -I /usr/lib/ocaml/3.09.2 *.ml *.mli -o doc/dep.dot -dot cat doc/dep.dot | sed -f dotfmt | dot -Tpng -o doc/fulldep.pngcat doc/dep.dot | sed -f dotfmt -e '/Test/d' | dot -Tpng -o doc/dep.pngncftpput -f ftpconfig -m -R -DD -V www/game doc ncftpput -f ftpconfig -m -V www/game test?*.ml


Root directory, with public-domain unit tests.
Documentation
Dependency graph
Dependency graph (with unit tests)
Quote:Original post by ToohrVyk
arkadir@nyarlathotep /home/arkadir/projects/ocamlgame

If Nyarlathotep is on your side, everyone else has already lost :D
Quote:Original post by yckx
Quote:Original post by ToohrVyk
arkadir@nyarlathotep /home/arkadir/projects/ocamlgame

If Nyarlathotep is on your side, everyone else has already lost :D


My Vista laptop is named Yog-Sothoth, and my former XP laptop was named Shub-Niggurath. And my PocketPC was Azathoth. I didn't use Cthulhu yet [smile]

This topic is closed to new replies.

Advertisement