Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

 
Advanced search

890969 Posts in 33519 Topics- by 24759 Members - Latest Member: multifractal

June 18, 2013, 03:04:47 PM
TIGSource ForumsDeveloperTechnical (Moderators: Glaiel-Gamer, ThemsAllTook)What are you programming RIGHT NOW?
Pages: 1 ... 23 24 [25] 26 27 ... 66
Print
Author Topic: What are you programming RIGHT NOW?  (Read 69043 times)
Taiko
Level 2
**



View Profile
« Reply #360 on: May 18, 2011, 07:01:37 AM »


Yes, exactly.  My package can by found at http://pygame.org/project-pyflora-1865-3275.html.

You can do a pretty good variety of plants with really simple rules.  I'm also working on a stochastic version so you get slightly different variations of the same plant over time.



Logged
st33d
Guest
« Reply #361 on: May 18, 2011, 07:21:56 AM »

Digital artist Blprnt has done quite a bit of work with L-System rendering:

http://blog.blprnt.com/blog/blprnt/project-tree-growth

You might be interested in looking at his work.
Logged
Taiko
Level 2
**



View Profile
« Reply #362 on: May 18, 2011, 09:04:54 AM »

Digital artist Blprnt has done quite a bit of work with L-System rendering:

http://blog.blprnt.com/blog/blprnt/project-tree-growth

You might be interested in looking at his work.

Cool!  I'll check him out.
Logged
Triplefox
Level 9
****



View Profile WWW Email
« Reply #363 on: May 19, 2011, 12:45:18 AM »

Today I added manipulation of multiple tile layers to my level editor. The tiles get converted to box2d bodies at runtime, the idea being that you can differentiate "mobile" bodies and "fixed" ones by using different layers.

Tomorrow I am going to put in the single most complicated feature of my level editor: Adding/removing joints of various types, which can attach to the layers.

Don't look forward to it, but I have a plan to keep it simplified and in preset-land, not "omg sliders everywhere."
Logged

Skomakar'n
Level 10
*****


Vąutah


View Profile WWW Email
« Reply #364 on: May 19, 2011, 01:03:49 AM »

Today I added manipulation of multiple tile layers to my level editor. The tiles get converted to box2d bodies at runtime, the idea being that you can differentiate "mobile" bodies and "fixed" ones by using different layers.

Tomorrow I am going to put in the single most complicated feature of my level editor: Adding/removing joints of various types, which can attach to the layers.

Don't look forward to it, but I have a plan to keep it simplified and in preset-land, not "omg sliders everywhere."
Sounds like a good situation for a linked list to be used, at least.

My game is also a Box2D game, for which I have programmed a custom level editor. My layer system is quite smart, in my own opinion, haha. Every type of object belongs in a 'layer priority group'. Different types of objects can belong to the same group. Objects belonging to group 1 can't be placed in layers below objects of group 0, and can't be placed in layers above those of group 2, for example, but objects within the same group can be freely moved above or below each other in the layer list.

This makes it very easy to make sure that objects that have to be drawn in a specific order are drawn in that order, without any errors, as they're not possible to make. No type of object can be placed behind a background house, and no background house can be placed in front of anything else; they're automatically moved to the top layer of their group when they are added to the world, and can then be moved up or down.
Logged

mak gam
Geisha Novia: Out now!
Bottoms Up!: Devlog

Royal Railway on Twitter.

Adam Emil
Dacke
Level 10
*****


I have never been to Woodstock


View Profile
« Reply #365 on: May 19, 2011, 03:42:53 AM »

compile and run this in c++

Code:
#include <stdio.h>
#include <time.h>
#define O_O const char*
#define __ if
#define ___ while
#define OO void

O_O O[]={"$%&'(#)*+,-./0#1234567#)89:;<=>#","0?@ABC5D#EFBG#",
"HIJBK#HILBM#HINO-PB#HIFBQ#HIRS#HIATU-VB#","WXY=Z.[#\\]^_`#abc'Rd#efg*h^ij#k*+l-mInd#opBqrC5D#"
,"sJBK#sJBK#HIJtIJ#uBK#HIJtIJ#uBK#","WXY=Z.[#\\]^_`#abc'Rd#efg*h^ij#","\n","I;y.;","21","-,.?29;.-",",1","41*;",
"G1+","521)",",8;",".+4;-","?2<","-1","<1","W","_",":+44","=1337,3;2,y-",")8?,"
,"Wy3",",8725729","1:",")1+4<2y,","9;,",",87-",":.13","?2'","1,8;.","9+'","6+-,",
")?22?",",;44","'1+","81)",":;;4729","Y1,,?","3?5;","+2<;.-,?2<","R;*;.","9122?",
"97*;","+0","4;,","<1)2",".+2","?.1+2<","<;-;.,","=.'","-?'","911<>';","?","47;",
"8+.,","I;y*;","521)2",";?=8",":1.","4129","G1+.","8;?.,y-",">;;2","?=8729",">+,","G1+y.;",
",11","-8'","7,","W2-7<;",");",">1,8",")8?,y-","91729","12","I;","9?3;",");y.;","04?'","_2<",
"7:","?-5","3;","Q111111118rrr","2;*;.","Y7*;"};OO _0(float _){clock_t _O=clock()
+_*CLOCKS_PER_SEC;___(clock()<_O);}char _O(char _){__(_=='\n'||_==' ')return
_;return -(_-'#'-'}');}OO __O(O_O _){___(*_){putchar(_O(*_++));fflush(stdout);_0(.06);}}OO
_(O_O _){___(*_){__O((O+6)[*_++-'#']);__(*(_-1)=='#')_0(1);else
__O(" ");}}int main(){_(*O);_(*(O+1));_("#");_(*(O+2));_("#");_(*(O+3));_("#");_(*(O+2));_
("#");_(*(O+2));_("#");_(*(O+4));_("#");_(*(O+5));_(*(O+1));_("#");_(*(O+2));_("#");_(*(O
+2));_("#");_(*(O+2));_("#");}


(i was quite bored)


I really loved this so I ported it to Python, with the goal of making it even more compact. (But far less obfuscated obviously!)
Your version is much more interesting, but at least I learned some new things about Python.

Run as Python:

Code:
import zlib, base64, time, sys
for c in zlib.decompress(base64.b64decode("eNrtlL1uhDAQhHueYjq6e4erTjRJeUppYMEOxnvyzyHePmvgEpGT0kSK\
ckqoLM96/O2OxZlKT3CMEL1yPfmAyLB8JRQvnDA4nhA1wSdLAcq1CIyWUaE4okvWouFxNHEkF8uASauIqhzljHGDcT24W50mTrZ\
1ZURPMasBnedRHGew\XODRpxlFhdcUIiblnEIksZ/lrBaIbNoR2exZnDhGhVENtOjJtUIeM11RPNE1u3F26M11q7hgJ1iByPstT\
26v+OSgPIvl0m1Lgfxauyt7v7vx814JapYVt/VMe2FpR642tDjrdPMtzlQKZ561A6lGbxPp2OdpW84tyww9NCmfx1wTCWWj8zDq\
FBc1BxlZktRzzjBjGFEqF0xLmAi1uK6B5p\RuLj0vKckUzvQRd6/GlXJaHsjawMVunkcRTLfAqzBASu8SesQYHhD5mbdPHw6HPf\
QX0l2j7vNGcfpO/S950H/zZ/KP/BPIb0L/fvg=")):
sys.stdout.write(c);sys.stdout.flush();time.sleep(0.06)
if c=='\n':time.sleep(0.94)
« Last Edit: May 19, 2011, 04:14:21 AM by Dacke » Logged

vegan • socialist • atheist • humanist • liberal • FOSSer
programmer • feminist • animal rights activist • pacifist • teetotaller
Dacke
Level 10
*****


I have never been to Woodstock


View Profile
« Reply #366 on: May 19, 2011, 01:28:03 PM »

Okay, so I went a bit overboard with this. I wrote an image to ascii converter in python to make it work.

Run as Python:
Code:
import zlib as a, base64 as b, time as c, sys as d
e=1;f=a.decompress(b.b64decode("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")).split("&");l=''
d.stdout.write(f[e]+'\n');g='\n'
for h in f[0]:
if h==g==l:d.stdout.write(g+f[e%5+1]+g);e+=1
d.stdout.write(h);d.stdout.flush();c.sleep(0.06);l=h
if h==g:c.sleep(1)
« Last Edit: May 19, 2011, 01:45:02 PM by Dacke » Logged

vegan • socialist • atheist • humanist • liberal • FOSSer
programmer • feminist • animal rights activist • pacifist • teetotaller
Triplefox
Level 9
****



View Profile WWW Email
« Reply #367 on: May 19, 2011, 01:57:09 PM »

Sounds like a good situation for a linked list to be used, at least.

My game is also a Box2D game, for which I have programmed a custom level editor. My layer system is quite smart, in my own opinion, haha. Every type of object belongs in a 'layer priority group'. Different types of objects can belong to the same group. Objects belonging to group 1 can't be placed in layers below objects of group 0, and can't be placed in layers above those of group 2, for example, but objects within the same group can be freely moved above or below each other in the layer list.

This makes it very easy to make sure that objects that have to be drawn in a specific order are drawn in that order, without any errors, as they're not possible to make. No type of object can be placed behind a background house, and no background house can be placed in front of anything else; they're automatically moved to the top layer of their group when they are added to the world, and can then be moved up or down.

That's not the problem at hand. I already have layer drawing and ordering in place so I can draw them reasonably well. Everything is generated from tiles for simplicity; it was kind of a pain to render tilemaps so that they line up and rotate correctly with the physics objects, but that was done, and done weeks ago. The only feature of core gameplay that I haven't really tested is applying bitmasks to different layers so that they can go above/below each other.

But to get to the problem. It's all UI: the user has to know which layers they're connecting when they work with joints, since each layer turns into a body at runtime. If I do this wrong it will be too confusing for public consumption; just having layers, by themselves, presents a usability problem. This is why I used tiles to begin with; it makes that stage of construction easier, since things will all line up neatly. That said, I do want to have an explicit notion of joints and layers, since they open up so many possibilities. So my solution is:

Stick to a small, fixed, pre-ordered number of layers(right now 4, maybe more in the future). Adding a joint is in three steps:

1. Place start of joint
2. Place end of joint
3. Dialogue pops up: Which layers are being connected, and what kind of joint is being made?

Then you see a placeholder graphic for the joint appear on the map saying "1-->4" or whichever layers you've connected.

I haven't finalized how I'm setting the mass of layers yet, but I will probably end up using a per-layer control, with the first layer always being fully static, since I use that body for the borders of the map as well. Combining mass, masking, and joint variations should make it possible to do some interesting over/under/rotation situations, but the biggest issue is in making sure that the user naturally ends up with valid/interesting combinations.

One idea I might run with is having not just a preset _number_ of layers, but preset _classes_ of layer: "Ground", "Low/Medium/High Obstacle", "Tall". That would greatly simplify things.
Logged

sublinimal
Level 6
*


"It's kind of hard to explain."


View Profile
« Reply #368 on: May 20, 2011, 11:28:45 AM »


Fibonacci spirals with a random palette generator!


Recursion trees!


A futuristic faux-3D landscape that's actually half of an ellipse! Could make a neat setting for a racing game.

Okay, nothing impressive, but at least I did it all without any help. These damn .gifs don't seem to move smoothly at all, although they only have like 1 ms delay between the frames.
Logged

Megaproject: Panacea
Big project: that other game
Control Room is dead, long live Veins of a Planet
Animals In Mild Exigency!! demo
Dacke
Level 10
*****


I have never been to Woodstock


View Profile
« Reply #369 on: May 20, 2011, 11:34:46 AM »

That's really neat! The tree animation is lovely.
Logged

vegan • socialist • atheist • humanist • liberal • FOSSer
programmer • feminist • animal rights activist • pacifist • teetotaller
beyzend
Level 0
**


View Profile Email
« Reply #370 on: May 21, 2011, 12:05:01 PM »

I'm working on this:

http://www.youtube.com/watch?v=jMbJ4lGGkBs&t=0m58s

My blog:

http://fdastero.tumblr.com/
Logged
_Madk
Level 10
*****

Love, love is a verb Love is a doing word ~♪


View Profile
« Reply #371 on: May 21, 2011, 01:04:54 PM »



Perlin noise for terrain generation
Logged

xhunterko
Level 1
*



View Profile WWW
« Reply #372 on: May 21, 2011, 02:33:56 PM »

Currently, the apocalapse.
Logged

_Madk
Level 10
*****

Love, love is a verb Love is a doing word ~♪


View Profile
« Reply #373 on: May 21, 2011, 05:47:10 PM »

Working on improving the RNG behind my perlin noise.

This came up:
Logged

Ludophonic
Level 1
*


View Profile
« Reply #374 on: May 21, 2011, 06:09:17 PM »

I previously rewrote my OpenGL stuff on Windows to be OpenGL 3.2 Core Profile. Now I'm backporting that to work under OpenGL 2.1 + extensions on OS X.
Logged
Pages: 1 ... 23 24 [25] 26 27 ... 66
Print
Jump to:  

Theme orange-lt created by panic